import os
from pathlib import Path

# 项目根目录（my-flask/）
BASE_DIR = Path(__file__).parent.parent.parent

# 实例目录（存储数据库、日志等动态文件）
INSTANCE_DIR = BASE_DIR / "instance"
INSTANCE_DIR.mkdir(exist_ok=True)  # 确保目录存在

class Config:
    """基础配置类（所有环境通用）"""
    # 跨平台兼容的SQLite数据库路径
    SQLITE_PREFIX = "sqlite:///" if os.name == "nt" else "sqlite:////"
    SQLALCHEMY_DATABASE_URI = SQLITE_PREFIX + str(INSTANCE_DIR / "data.db")
    SQLALCHEMY_TRACK_MODIFICATIONS = False  # 禁用修改跟踪（提升性能）
    SECRET_KEY = os.getenv("SECRET_KEY", "dev-secret-key-123")  # 会话密钥

class DevelopmentConfig(Config):
    """开发环境配置"""
    DEBUG = True

class ProductionConfig(Config):
    """生产环境配置"""
    DEBUG = False
    # 生产环境从环境变量读取敏感配置
    SECRET_KEY = os.getenv("SECRET_KEY")
    # SQLALCHEMY_DATABASE_URI = os.getenv("DATABASE_URL")  # 可选：自定义生产数据库

# 配置映射（用于快速切换环境）
config_map = {
    "dev": DevelopmentConfig,
    "prod": ProductionConfig
}